package bizzard.shared;

import java.util.ArrayList;
import java.util.HashMap;

import com.google.gwt.user.client.rpc.IsSerializable;
import com.thoughtworks.xstream.annotations.*;


//+----------------------------------------------------------------------+
//| Race
//|
//| name			: 	nom de la race
//| caracteres		: 	liste des caracteres de la race
//| trolls			: 	hashMap des trolls de cette race indexé sur le nom du troll
//|
//| - classe de données
//+----------------------------------------------------------------------+

@XStreamAlias("Race")
public class Race implements IsSerializable {

	private String name;
	private ArrayList<Attribut> caracteres = new ArrayList<Attribut>(); //liste des caracteristiques dispo
	@XStreamOmitField
	private HashMap<String, Troll> trolls = new HashMap<String, Troll>(); //on memorise les trolls qui ont cette race
	
	/**
	 ** constructeur par defaut
	 **/ 
	public Race() {}
	
	public Race(String name) {
		this.name = name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getName() {
		return name;
	}
	
	public ArrayList<Attribut> getCaracteristiques() {
		return caracteres;
	}
	
	public void addCaractere(Attribut attr) {
		caracteres.add(attr);
	}
	
	public void addTroll(Troll troll) {
		trolls.put(troll.getName(), troll);
	}
	
	public HashMap<String, Troll> getTrolls() {
		return trolls;
	}
}
